{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用 tf.keras.datasets 加载数据"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:12:32.716767Z",
     "start_time": "2025-04-25T05:12:31.317141Z"
    }
   },
   "source": [
    "import tensorflow as tf"
   ],
   "outputs": [],
   "execution_count": 1
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:12:32.822697Z",
     "start_time": "2025-04-25T05:12:32.819332Z"
    }
   },
   "source": [
    "tf.__version__"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2.10.0'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "execution_count": 2
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:12:40.357949Z",
     "start_time": "2025-04-25T05:12:36.938509Z"
    }
   },
   "source": [
    "mnist = tf.keras.datasets.mnist\n",
    "\n",
    "(x_train, y_train), (x_test, y_test) = mnist.load_data()"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n",
      "11490434/11490434 [==============================] - 3s 0us/step\n"
     ]
    }
   ],
   "execution_count": 3
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:13:52.703115Z",
     "start_time": "2025-04-25T05:12:57.828460Z"
    }
   },
   "source": [
    "print(x_train.shape, y_train.shape)\n",
    "print(x_test.shape, y_test.shape)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28) (60000,)\n",
      "(10000, 28, 28) (10000,)\n"
     ]
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:14:16.631541Z",
     "start_time": "2025-04-25T05:14:16.627751Z"
    }
   },
   "source": [
    "y_train = y_train.astype('float32')\n",
    "y_test = y_test.astype('float32')\n",
    "\n",
    "# Reserve 10,000 samples for validation\n",
    "x_val = x_train[-10000:]\n",
    "y_val = y_train[-10000:]\n",
    "x_train = x_train[:-10000]\n",
    "y_train = y_train[:-10000]"
   ],
   "outputs": [],
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:14:20.625002Z",
     "start_time": "2025-04-25T05:14:20.621999Z"
    }
   },
   "source": [
    "print(x_train.shape)\n",
    "print(x_val.shape)"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(50000, 28, 28)\n",
      "(10000, 28, 28)\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:20:45.503732Z",
     "start_time": "2025-04-25T05:20:45.024943Z"
    }
   },
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "fig = plt.figure()\n",
    "for i in range(18):\n",
    "    plt.subplot(3,6,i+1) # 绘制前15个手写体数字，以3行5列子图形式展示\n",
    "    plt.tight_layout() # 自动适配子图尺寸\n",
    "    plt.imshow(x_train[i], cmap='Greens') # 使用灰色显示像素灰度值\n",
    "    plt.title(\"Label: {}\".format(y_train[i])) # 设置标签为子图标题\n",
    "    plt.xticks([]) # 删除x轴标记\n",
    "    plt.yticks([]) # 删除y轴标记"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 18 Axes>"
      ],
      "image/png": "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/0wgEODtb3973fH3vve9TExM8LOf/exSk7cttLpmjejo6EBV1XULQitq1up6yTLWepoBPPLII3zmM5/hb/7mbzblFEjN6pH14vaxEzXbKM3UrOkthqVSiUQiwX/+z/+Zvr4+yuUy3/ve97jnnnu4//77efe73113/de+9jUefPBB7rvvPvx+P5/85Cd55zvfia7rvO1tbwMqotx2222oqsp//a//laGhIR599FE+/vGPc/HiRe6///4107R7926g0oe/nRw/fpzDhw+j6/XZeuTIkcXzd95557amYSvsBM2EENi2TSaT4Tvf+Q6f//zn+chHPrJCi+W0omY7Qa+t0op6QetrVigUeP/7389v/dZvcfPNN/O1r31tw/cuNZP14uViJ2j2iU98gt/7vd9D13Vuvvlmfud3foe3vOUt64ZrqmZiE9x///0CEI8//viGw1iWJUzTFO9///vFsWPH6s4Bwuv1iqmpqbrrDx06JPbt27d47N577xWBQEAMDw/Xhf+f//N/CkCcOHGiLs6PfexjddcNDQ2JoaGhDad5Ab/fL97znvds+Pr9+/eL173udSuOT0xMCED8yZ/8yabTcKlcK5r99//+3wUgAKEoivjoRz+6oXBXm2bXil4LyDLWGpp95CMfEXv37hX5fF4IIcTHPvYxAYh4PL5uWKmZrBebwU7XbGJiQnzgAx8Q//AP/yAeeeQR8Xd/93fijjvuEID47Gc/u274Zmq2LcvVfOUrX+Guu+4iEAig6zqGYfC5z32OU6dOrbj2Na95DV1dXYvfNU3jHe94B2fPnmVsbAyAb3zjG7zqVa+it7cXy7IW/73hDW8A4KGHHlozPWfPnuXs2bNNvMPVURRlS+euNK2u2a/8yq/w+OOP8+1vf5vf+Z3f4U//9E/50Ic+tKGwrahZq+t1KbSiXtC6mj322GP8+Z//OZ/+9Kfxer2bueVFpGayXrxctKpmPT09fOYzn+Htb387L3vZy3jXu97Fww8/zLFjx/jd3/3dDXVbN0uzpjuGX/3qV/nlX/5l+vr6+OIXv8ijjz7K448/zvve9z6KxeKK67u7u1c9Njc3B8D09DRf//rXMQyj7t/1118PsOElE7ab9vb2xTTXkkgkAIhGo5c7SRtiJ2jW3d3NS17yEn7+53+eT3ziE9x333381V/9FU8//fSa4VpRs52g11ZpRb2g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7+jt7aVarfKNb3yD97znPXz2s59dU4X9pS99iUceeYRPfOITBAIBPvWpT/H+978fXdf58R//caAmyv3334+qqvyn//SfOHToEE888QS//du/zdWrV/nsZz+7YZoOHDgAwNWrVzd1DkIIHMchl8vxta99jT/90z/lYx/7GLq+cXadOXOG48ePrwl36tSp5f0PP/zwptJwI2lnzR599FEAHMfh1a9+NU8++SSBQIC3v/3t/Nf/+l/p6enZ8Ph21Kyd9dop7agX7C/NXNflT//0TxkeHuZ1r3vddcNLzW6+ZgC2bfPd736XEydOXDes1OzGa/ajP/qjDAwM8LGPfYxPfepTDA4O8uyzz/LJT36Sd7/73Rw/fnzD43dVs03XLYrtVeXati0syxI///M/L+66666mfYDw+XxiamqqKfyxY8fE8PDw8raPfOQjIhgMimvXrjUd/1/+y38RgHjxxReb4lxdlXvo0KFNVZ8v8Xu/93sCEIBQFEX82q/92qaOO3z4sHjb2962ZvvExIQAxO/+7u9uOg27xX7X7G1ve5sARDQaFb/6q78qvvWtb4lPf/rTIpFIiOHhYVEoFDY8/pWm2X7XazVbbUp+peklxK2n2T/90z8JQPze7/3epsJLzW6+ZkII8Wu/9msCEH/7t3973bBSs5uj2cTEhHjooYeW/Q9AvPe9771uNzYhdlezPZmu5gtf+AKvetWrCAaD6LqOYRj88R//MWfPnl0T9k1vehOdnZ3LvzVN4yd+4ie4ePEiY2NjAPzDP/wDb3jDG+jp6cG27eX/73jHOwD4zne+s2F6Ll68yMWLFzed/p/5mZ/hqaee4qtf/Sq/+qu/yh/8wR/wy7/8y5s6dqPmzO00dd4o2lUz13UB+Imf+Al+//d/nze84Q185CMf4Y//+I+5ePEif/EXf3HdONpRs3bVazdoR71g/2j2x3/8x+i6vqXR5FKzm6vZH/3RH/E7v/M7fOxjH+NHfuRHNnWM1OzGapZOp/mRH/kRstksn/vc53j00Uf51Kc+xWOPPcYP//APb6rZerc023XH8Itf/CLve9/76O3t5c///M954okneOqpp/i5n/s5yuXymvBdXV3rblsaoj09Pc3f//3fYxhG0/+lKvG5ubldPYeuri7uvfde3vrWt/LJT36ST3ziE/zhH/7hdUe5JhKJlsPKFxYWAIjH47ua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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 17
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用 tf.keras 管理 Sequential 模型"
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:20:58.872392Z",
     "start_time": "2025-04-25T05:20:58.834833Z"
    }
   },
   "source": [
    "model = tf.keras.models.Sequential([\n",
    "  tf.keras.layers.Flatten(input_shape=(28, 28)),\n",
    "  tf.keras.layers.Dense(128, activation='relu'),\n",
    "  tf.keras.layers.Dropout(0.2),\n",
    "  tf.keras.layers.Dense(10)\n",
    "])"
   ],
   "outputs": [],
   "execution_count": 18
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:21:04.865513Z",
     "start_time": "2025-04-25T05:21:04.857360Z"
    }
   },
   "source": [
    "model.summary()"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      " Layer (type)                Output Shape              Param #   \n",
      "=================================================================\n",
      " flatten (Flatten)           (None, 784)               0         \n",
      "                                                                 \n",
      " dense (Dense)               (None, 128)               100480    \n",
      "                                                                 \n",
      " dropout (Dropout)           (None, 128)               0         \n",
      "                                                                 \n",
      " dense_1 (Dense)             (None, 10)                1290      \n",
      "                                                                 \n",
      "=================================================================\n",
      "Total params: 101,770\n",
      "Trainable params: 101,770\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "execution_count": 19
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:21:13.526277Z",
     "start_time": "2025-04-25T05:21:10.917994Z"
    }
   },
   "source": [
    "!pip install graphviz pydot\n",
    "!apt-get install -y graphviz"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting graphviz\r\n",
      "  Downloading graphviz-0.20.3-py3-none-any.whl.metadata (12 kB)\r\n",
      "Collecting pydot\r\n",
      "  Downloading pydot-3.0.4-py3-none-any.whl.metadata (10 kB)\r\n",
      "Requirement already satisfied: pyparsing>=3.0.9 in /opt/anaconda3/envs/py310/lib/python3.10/site-packages (from pydot) (3.2.0)\r\n",
      "Downloading graphviz-0.20.3-py3-none-any.whl (47 kB)\r\n",
      "Downloading pydot-3.0.4-py3-none-any.whl (35 kB)\r\n",
      "Installing collected packages: pydot, graphviz\r\n",
      "Successfully installed graphviz-0.20.3 pydot-3.0.4\r\n",
      "zsh:1: command not found: apt-get\r\n"
     ]
    }
   ],
   "execution_count": 20
  },
  {
   "cell_type": "code",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-04-25T05:21:25.336678Z",
     "start_time": "2025-04-25T05:21:25.332044Z"
    }
   },
   "source": [
    "tf.keras.utils.plot_model(model, 'mnist_model.png')"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "You must install pydot (`pip install pydot`) and install graphviz (see instructions at https://graphviz.gitlab.io/download/) for plot_model to work.\n"
     ]
    }
   ],
   "execution_count": 21
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=\"adam\",\n",
    "              loss='sparse_categorical_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/5\n",
      "1563/1563 [==============================] - 3s 2ms/step - loss: 0.3296 - accuracy: 0.9153\n",
      "Epoch 2/5\n",
      "1563/1563 [==============================] - 3s 2ms/step - loss: 0.3318 - accuracy: 0.9192\n",
      "Epoch 3/5\n",
      "1563/1563 [==============================] - 3s 2ms/step - loss: 0.3156 - accuracy: 0.9213\n",
      "Epoch 4/5\n",
      "1563/1563 [==============================] - 3s 2ms/step - loss: 0.3205 - accuracy: 0.9196\n",
      "Epoch 5/5\n",
      "1563/1563 [==============================] - 3s 2ms/step - loss: 0.3061 - accuracy: 0.9238\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7f0a3ce315f8>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(x_train, y_train, epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "313/313 [==============================] - 0s 1ms/step - loss: 0.3225 - accuracy: 0.9475\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.3224552869796753, 0.9474999904632568]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.evaluate(x_val, y_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 保存为 SavedModel 格式模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/resource_variable_ops.py:1817: calling BaseResourceVariable.__init__ (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "If using Keras pass *_constraint arguments to layers.\n",
      "INFO:tensorflow:Assets written to: mnist_model/assets\n"
     ]
    }
   ],
   "source": [
    "model.save(\"mnist_model\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加载 SavedModel 格式模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "sm = tf.keras.models.load_model(\"mnist_model\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "313/313 [==============================] - ETA: 0s - loss: 0.2629 - accuracy: 0.93 - 0s 1ms/step - loss: 0.2520 - accuracy: 0.9410\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.25202295184135437, 0.9409999847412109]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sm.evaluate(x_val, y_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 保存为 HDF5 格式模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.save(\"mnist_model.h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加载 HDF5 格式模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "hm = tf.keras.models.load_model(\"mnist_model.h5\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "313/313 [==============================] - 0s 1ms/step - loss: 0.2520 - accuracy: 0.9410\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.25202295184135437, 0.9409999847412109]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hm.evaluate(x_val, y_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用 tf.keras 管理 functional API"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# For easy reset of notebook state.\n",
    "tf.keras.backend.clear_session() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 使用 tf.keras.Input 定义模型输入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "inputs = tf.keras.Input(shape=(28, 28))\n",
    "x = tf.keras.layers.Flatten(input_shape=(28, 28))(inputs)\n",
    "x = tf.keras.layers.Dense(128, activation='relu')(x)\n",
    "x = tf.keras.layers.Dropout(0.2)(x)\n",
    "outputs = tf.keras.layers.Dense(10)(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.Model(inputs=inputs, outputs=outputs, name='mnist_model')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"mnist_model\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "input_1 (InputLayer)         [(None, 28, 28)]          0         \n",
      "_________________________________________________________________\n",
      "flatten (Flatten)            (None, 784)               0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 128)               100480    \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 128)               0         \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 10)                1290      \n",
      "=================================================================\n",
      "Total params: 101,770\n",
      "Trainable params: 101,770\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: graphviz in /usr/local/lib/python3.6/dist-packages (0.14)\n",
      "Requirement already satisfied: pydot in /usr/local/lib/python3.6/dist-packages (1.4.1)\n",
      "Requirement already satisfied: pyparsing>=2.1.4 in /usr/local/lib/python3.6/dist-packages (from pydot) (2.4.7)\n",
      "Reading package lists... Done\n",
      "Building dependency tree       \n",
      "Reading state information... Done\n",
      "graphviz is already the newest version (2.40.1-2).\n",
      "0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.\n"
     ]
    }
   ],
   "source": [
    "!pip install graphviz pydot\n",
    "!apt-get install -y graphviz"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf.keras.utils.plot_model(model, model.name+'.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=\"adam\",\n",
    "              loss='sparse_categorical_crossentropy',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/5\n",
      "1563/1563 [==============================] - 2s 2ms/step - loss: 0.4323 - accuracy: 0.8971\n",
      "Epoch 2/5\n",
      "1563/1563 [==============================] - 2s 2ms/step - loss: 0.3921 - accuracy: 0.9016\n",
      "Epoch 3/5\n",
      "1563/1563 [==============================] - 2s 2ms/step - loss: 0.3731 - accuracy: 0.9060\n",
      "Epoch 4/5\n",
      "1563/1563 [==============================] - 2s 2ms/step - loss: 0.3530 - accuracy: 0.9123\n",
      "Epoch 5/5\n",
      "1563/1563 [==============================] - 2s 2ms/step - loss: 0.3406 - accuracy: 0.9134\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x7f0a3c6599b0>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(x_train, y_train, epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "313/313 [==============================] - 0s 1ms/step - loss: 0.3225 - accuracy: 0.9475\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.3224552869796753, 0.9474999904632568]"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.evaluate(x_val, y_val)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型保存和加载：functional API 与 Sequential 完全兼容"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
